#ifndef CSHAPE_H_
#define CSHAPE_H_
#include "gltools.h"
#include "MMath.h"

// Classes and structs defined in this file.
class CShape;	//Basic 2D quadrilateral shape

class CShape
{
private:

public:
	unsigned int	m_numTriangles;							//number of triangles
	unsigned int	m_numberVerts;							//number of vertices

	Vec2*			m_pVertexData;							//pointer to the vertex data
	Vec2*			m_pTextureCoordinates;					//pointer to the texture uvs
	////////////////////////////////////////////////////////////////////////////////////
	//Function	:	Constructor.
	////////////////////////////////////////////////////////////////////////////////////
	CShape();

	////////////////////////////////////////////////////////////////////////////////////
	//Function	:	Destructor.
	////////////////////////////////////////////////////////////////////////////////////
	~CShape();

	////////////////////////////////////////////////////////////////////////////////////
	//Functions	:	Accessors.
	////////////////////////////////////////////////////////////////////////////////////
	Vec2*			GetVertexDataPointer(void){return m_pVertexData;}
	Vec2*			GetTextureCoordPointer(void){return m_pTextureCoordinates;}

	////////////////////////////////////////////////////////////////////////////////////
	//Functions	:	Methods.
	////////////////////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////////////////////
	//Function	:	MakeShape
	//Purpose	:	To create a basic 2D shape.
	//In		:	Vec2 - top-left of the shape
	//			:	Vec2 - bottom-right of the shape
	//			:	int	- number of divisions across the shape to allow for bending.
	//Out		:	Nothing.
	////////////////////////////////////////////////////////////////////////////////////
	void MakeShape(Vec2 vecTopLeft,	Vec2 vecBottomRight, int nDivisions);

	void MakeNoodle(float lefttheta, float righttheta, float innerlimit, float outerlimit, int nDivisions);
};


#endif /*CSHAPE_H_*/